【Unity3D日常开发】Unity3D中Animation和Animator动画的播放、暂停、倒放控制 |
您所在的位置:网站首页 › unity 播放 › 【Unity3D日常开发】Unity3D中Animation和Animator动画的播放、暂停、倒放控制 |
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言在日常开发中,常常会遇到要控制动画的播放、暂停和倒放的情况。 这篇文章就总结一下,Animation和Animator动画播放系统的控制播放、暂停、倒放的代码。 首先,来了解一下Animation和Animator的区别和联系。 二、Animation和Animator的区别和联系 2-1、Animation动画播放器
Animation组件和Animator组件的使用是非常相似的。 Animation组件用来控制单一动画的播放控制,Animator控制多个动画之间的切换,用了状态机机制。 Animation占用资源少,Animator占用资源多。 Animator增加了骨骼Avatar,可以控制骨骼动画: 根据动画片段的名字播放动画: using UnityEngine; public class AnimationPlayControl : MonoBehaviour { Animation ani; void Start() { //播放动画 ani.Play("Open"); } }设置动画片段来播放动画: using UnityEngine; public class AnimationPlayControl : MonoBehaviour { Animation ani; public AnimationClip[] clips; void Start() { //使用动画片段来播放动画 ani.clip = clips[0]; ani.Play(); } }将动画片段拖进去: AnimationClip:动画剪辑片段,储存基于关键帧的动画,是用于Animation来播放动画 3-2、暂停动画使用了三种方法 using UnityEngine; public class AnimationPlayControl : MonoBehaviour { Animation ani; Animator anir; void Start() { // 播放动画 ani.Play("Open"); // 暂停动画 // 第一种方法: ani.Stop(); // 第二种方法: AnimationState animationState = ani["Open"]; animationState.speed = 0; //第三种方法 Time.timeScale = 0; } } 3-3、倒放动画关键点在于设置AnimationState动画状态播放速度为负值即可倒放,负多少无所谓: using UnityEngine; public class AnimationPlayControl : MonoBehaviour { Animation ani; void Start() { // 倒放动画 AnimationState animationState = ani["Open"]; animationState.speed = -1;//设置速度为负值即可 animationState.normalizedTime = 1; ani.Play("Open"); } }AnimationState:动画状态,用来改变单一动画的播放速度、权重、时间、层级、播放Mode,以及混合模式 四、Animator中控制动画播放、暂停、倒放 4-1、旧版Unity的API实现播放、暂停、倒放 using UnityEngine; public class AnimationPlayControl : MonoBehaviour { public Animator ani; void Start() { } void Update() { if (Input.GetKeyDown(KeyCode.W)) { // 暂停动画 ani.speed = 0; } if (Input.GetKeyDown(KeyCode.S)) { // 倒播 // 现在speed设置为负数无效 ani.speed = -1; } if (Input.GetKeyDown(KeyCode.D)) { // 播放动画 ani.speed = 1; } } }目前,播放和暂停是有用的,但是倒放不管用。 接下来,看一下新版Unity如何实现Animator动画的倒放吧。 4-2、新版Unity的API实现播放、暂停、倒放第一种方法,复制一份动画片段 第二种方法,用状态机控制 (1)新建变量float类型: 本篇文章详细讲解了Animation和Animator组件的介绍和不同点。 已经使用的方法。 然后介绍了Animation和Animator组件播放动画的过程中的播放、倒播、暂停动画的代码分享。 当然,Animation和Animator组件的使用不仅仅就这些,更多的高端的使用方法,可以关注其他文章。 如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。 你的点赞就是对博主的支持,有问题记得留言: 博主主页有联系方式。 博主还有跟多宝藏文章等待你的发掘哦: 专栏方向简介Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |